"我们接了 RAG,怎么还是瞎编?"——这是最常见的吐槽。RAG(检索增强生成)本该让智能体"句句有出处",但很多人以为"把文档扔进去、接个向量库"就完事了,结果召回的是无关片段,答案自然胡说。RAG 不是接上就行,是调出来才准。
检索质量决定了答案的上限。从切片、召回、重排到出处,四个环节逐个打磨,RAG 才真正发挥作用。
1. 切片粒度。太粗一段塞太多噪声,太细丢上下文。按语义自然断句(如按小节、按 QA 对),试出最适合你文档的大小,通常 300~800 字一段较稳。
2. 检索召回。别只用向量检索。混合检索(向量语义 + 关键词 BM25)更稳,能兼顾"意思相近"和"专有名词精确命中"。
混合检索思路:
向量召回 top10(语义相似)+ 关键词召回 top10(精确匹配)→ 合并去重 → 进重排
3. 重排过滤。召回的片段别全喂给模型,先重排(rerank)留最相关的 3~5 段,既省 token 又降干扰。
4. 标明出处。答案末尾附上引用片段来源(文档名+段落),让用户可核查,也倒逼模型不敢乱编。
某法律咨询智能体从"纯向量召回"切到"混合检索+重排"后,答案有据可查率从 72% 升到 94%,因"编造法条"导致的信任危机基本消失。用户能看到引用原文,敢真的拿去用。
① 召回多≠好:塞 20 段常比精准 3 段更差,噪声淹没信号。② 文档要干净:PDF 乱码、扫描件没 OCR,检索再好也白搭。③ 要防"检索失败硬答":真没召回时让智能体说"我不确定",而不是编一个。
做 RAG 前,先把文档怎么切、怎么召回、怎么重排、怎么标出处想清楚,写成配置。RAG 的上限在检索,不在模型。检索调好,答案自然句句有出处。